# 第三周作业 （对应课程：学完流程控制、基础数据结构）
# 1.快速统计:
# 快速统计字符串每个元素出现的次数： 如"abcevaefegsgdghfdefavbdr"， “a”:x,"b":y

test_str = input('输入的字符串为：').strip().lstrip('0+-')
counter = {}

for x in test_str:
    if x not in counter.keys():
        counter[x] = 0
    counter[x] += 1
print(f'字符串{test_str}的统计如下：', counter, sep='\n')


# 2.降序切割:
# 快速统计字符串每个元素出现的次数： 如"abcevaefegsgdghfdefavbdr"， “a”:x,"b":y，
# #根据出现的次数降序排列，并且列出出现次数最多的三个元素
test_str = input('输入的字符串为：').strip().lstrip('0+-')
counter = {}

for x in test_str:
    if x not in counter.keys():
        counter[x] = 0
    counter[x] += 1
print(f'字符串{test_str}的统计如下：', counter, sep='\n')

# 按照字典的值排序后返回列表
result = sorted(counter.items(), key=lambda x: x[1], reverse=True)
result_top3 = result[:3]  # 取降序排序后的前三个元素

print()
print('出现次数最多的三个元素为：')
for x in result_top3:
    print(x[0])

# 可以作为同一题实现，无需分两个步骤
